c# WPF SVG 文件的引用(SharpVectors)

您所在的位置:网站首页 facebook symbol svg c# WPF SVG 文件的引用(SharpVectors)

c# WPF SVG 文件的引用(SharpVectors)

2023-10-28 22:47| 来源: 网络整理| 查看: 265

阿里巴巴矢量图标库提供了大量的 SVG 图标:https://www.iconfont.cn/  但是 WPF 本身不支持 SVG 格式的文件。 方法一:如果对图片的颜色没有要求,那么可以在下载图片时选择:复制 SVG ,然后将文本中的 Path 路径提取出来,多个路径之间用空格隔开。这种方法只能调节图像的前景色和背景色。

原 SVG 文本:

XAML 代码:

有时美工导出的 SVG 文本是大量的路径的拼接,而且这些路径不是 Path ,而是 Rect,Ellipse 这些规则形状。这就需要美工在导出 SVG 前建立复合路径。

(PS 参考:https://jingyan.baidu.com/article/9113f81b24e19a2b3214c7f6.html)

(GIMP 参考:https://stackoverflow.com/questions/11529470/is-there-a-tool-to-create-svg-paths-from-an-svg-file)

(网上看到有人使用 InKscape 直接可以转 XAML,但是笔者没有成功过。)

注意事项:WPF 默认会将多个路径中的相同部分进行相减操作。如果SVG文件的路径有重合部分,上面的方法绘制的图形会缺少部分路径。需要使用WPF中的 CombinedGeometry 来处理多段路径(GeometryGroup同样会进行相减操作)。

原 SVG 文本:

XAML代码:

 

  方法二:使用 nuget 安装 sharpvectors 包: Install-Package SharpVectors -Version 1.0.0

在调试时走了一点弯路,后来看到了这篇问答:http://www.jiajianhudong.com/question/778215.html 。

总之要注意两点:1.使用  Source="pack://application:,,,/1.svg"    这种方法来调用 svg 文件,这样才能正确的调用资源。

                             2. svg 文件的属性默认是内容,务必改为  Resource,然后一定要重新生成项目再运行。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3